/*
 * Lenovo Group
 * Copyright (c) 2015-2016 All Rights Reserved.
 * 
 * Project Name:event-recoder
 * Create Time: 2016年3月6日 下午8:42:06
 */
package com.lenovo.lmrp.server.eventrecorder.domain.ticket;

import java.util.List;

import com.lenovo.lmrp.api.model.entity.EngineerTracePO;
import com.lenovo.lmrp.api.model.entity.ExceptionEventPO;
import com.lenovo.lmrp.api.model.entity.TicketEventPO;

/**
 * Define interface to access event DB.
 * There are following event category:
 * 1. Ticket event, when ticket created in ITSM, update from App
 * 2. Engineer event, when engineer login, logout, update personal information
 * 3. Audit log, user do something in Web page
 * 4. Internal exception
 * 
 * @author wujin
 * @version v1.0
 */
public interface IEventRepository {
    /**
     * batch save ticket event to event DB
     * 
     * @param poList
     */
    public void storeTicketEvent(List<TicketEventPO> poList);
    
    /**
     * obtain event history list of one special ticket
     * 
     * @param itsmCode
     * @param ticketID
     * @return
     */
    public List<TicketEventPO> getTicketEvents(String itsmCode, String ticketID);
    
    /**
     * batch save engineer trace to event DB
     * 
     * @param poList
     */
    public void storeEngineerTrace(List<EngineerTracePO> poList);
    
    /**
     * batch save exception to event DB
     * 
     * @param poList
     */
    
    public void storeExceptionEvent(List<ExceptionEventPO> poList);
}
